package app.v1.common.domain.pojo;

import app.common.ar.Ar;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.gitee.feizns.quickstart.ddl.annotation.Comment;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors;

import javax.persistence.Column;
import javax.persistence.Entity;

/**
 * 资源
 * @author feizns
 * @since 2023/3/6
 */
@Entity
@Getter
@Setter
@ToString(callSuper = true)
@Accessors(chain = true)
@TableName(autoResultMap = true)
@NoArgsConstructor
@Comment("资源")
public class Resource extends Ar<Resource> {

    /**
     * 资源类型（file=文件、video=视频、audio=音频、image=图片）
     */
    @Comment("资源类型（file=文件、video=视频、audio=音频、image=图片）")
    @Column(columnDefinition = "VARCHAR(255)")
    private Type type;

    /**
     * 文件key
     */
    @Comment("文件key")
    @Column(name = "`key`", unique = true)
    @TableField("`key`")
    private String key;

    /**
     * ab url
     */
    @Column(unique = true)
    @Comment("文件绝对路径")
    private String abUrl;

    /**
     * 资源类型（file=文件、video=视频、audio=音频、image=图片）
     */
    public enum Type {

        /**
         * 文件
         */
        file,

        /**
         * 音频
         */
        audio,

        /**
         * 图像
         */
        image,

        /**
         * 视频
         */
        video;

    }

}
